/**
 * Person Class
 * An general class for creating Person Type sub-classes
 *
 *  @author John Thomason
 *  Date: Fall 2008
 *  Course: CS222
 *  Seminar: 6
 *  Assign: Final Exam Part B
 *
 */
public abstract class Person {

//INSTANCE VARIABLES

    private int    age;
    private String name;


//CONSTRUCTORS

    /**
     * No-Arg constructor protected for sub-classes only
     */
    protected Person () {}
    /**
     * Protected constructor for sub-classes only
     * @param name  Name of Person
     * @param age   Age of Person in whole years
     */
    protected Person (String name, int age) {
        this.name = name;
        this.age  = age;
    }//Constructors


//REQUIRED ABSTRACT METHODS

    /**
     * Describe the person in detail
     * @return  A formatted string representing detailed person information
     */
    public abstract String personDetails ();


//OVERRIDDEN METHODS

    /**
     * A formatted string containing the name and age of a person
     * @return  A formatted string with name and age
     */
    @Override
    public String toString () {
        return "Name: " + name + ", Age: " + age;
    }//toString()

}//Person Class

